package br.com.locasis.entity;

// Generated 24/05/2012 20:14:44 by Hibernate Tools 3.4.0.CR1

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.validator.NotNull;

/**
 * ManutencaoVeiculo generated by hbm2java
 */
@Entity
@Table(name = "perfil_funcionalidade")
public class PerfilFuncionalidade implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private Integer idPerfilFuncionalidade;
	private Perfil perfil;
	private Funcionalidade funcionalidade;
	private boolean flgLeitura;
	private boolean flgGravacao;
	private boolean flgExclusao;

	private boolean selecionado;
	private Integer idFuncionalidadeSelecionada;
	private boolean controleTotal;

	public PerfilFuncionalidade() {
	}

	@Id
	@Column(name = "id_perfil_funcionalidade", unique = true, nullable = false)
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	public Integer getIdPerfilFuncionalidade() {
		return idPerfilFuncionalidade;
	}

	public void setIdPerfilFuncionalidade(Integer idPerfilFuncionalidade) {
		this.idPerfilFuncionalidade = idPerfilFuncionalidade;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_perfil", nullable = false)
	@NotNull
	public Perfil getPerfil() {
		return perfil;
	}

	public void setPerfil(Perfil perfil) {
		this.perfil = perfil;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "id_funcionalidade", nullable = false)
	@NotNull
	public Funcionalidade getFuncionalidade() {
		return funcionalidade;
	}

	public void setFuncionalidade(Funcionalidade funcionalidade) {
		this.funcionalidade = funcionalidade;
	}

	@Column(name = "flg_leitura", nullable = false)
	public boolean isFlgLeitura() {
		return flgLeitura;
	}

	public void setFlgLeitura(boolean flgLeitura) {
		this.flgLeitura = flgLeitura;
	}

	@Column(name = "flg_gravacao", nullable = false)
	public boolean isFlgGravacao() {
		return flgGravacao;
	}

	public void setFlgGravacao(boolean flgGravacao) {
		this.flgGravacao = flgGravacao;
	}

	@Column(name = "flg_exclusao", nullable = false)
	public boolean isFlgExclusao() {
		return flgExclusao;
	}

	public void setFlgExclusao(boolean flgExclusao) {
		this.flgExclusao = flgExclusao;
	}

	@Transient
	public boolean isSelecionado() {
		return selecionado;
	}

	@Transient
	public void setSelecionado(boolean selecionado) {
		this.selecionado = selecionado;
	}

	@Transient
	public Integer getIdFuncionalidadeSelecionada() {
		return idFuncionalidadeSelecionada;
	}

	@Transient
	public void setIdFuncionalidadeSelecionada(Integer idFuncionalidadeSelecionada) {
		this.idFuncionalidadeSelecionada = idFuncionalidadeSelecionada;
	}

	@Transient
	public boolean isControleTotal() {
		return controleTotal;
	}

	@Transient
	public void setControleTotal(boolean controleTotal) {
		this.controleTotal = controleTotal;
	}
}
